Combining depth-first and breadth-first search in Prolog execution
نویسندگان
چکیده
A new model for the execution of Prolog programs, called MEM (Multipath Execution Model), which combines a depth-first and breadth-first exploration of the search tree is presented. The breadth-first search allows more than one path (multiple potential solutions) to be explored at the same time. In this way, the computational cost of traversing the whole search tree associated to a program can be decreased because the MEM model reduces the overhead due to the execution of control instructions. This paper focuses on the description of the MEM model and its sequential implementation. Moreover, the MEM execution model can easily extended to exploit a new kind of parallelism, called path parallelism, which allows the parallel execution of unify operations related to simultaneously explored paths. Since these operations do not have any dependence among them, this type of parallelism can always be exploited. An architecture (PMA) to implement the MEM execution model on a parallel environment is also presented. PMA looks like a SIMD machine, with a Control Processor (CP), responsible for traversing the whole search tree, and several Unification Functional Units (UFUs), responsible for performing unify operations.
منابع مشابه
A Partial Breadth-First Execution Model for Prolog
MEM (Multipath Execution Model) is a novel model for the execution of Prolog programs which combines a depth-rst and breadth-rst exploration of the search tree. The breadth-rst search allows more than one path of the SLD-tree to be explored at the same time. In this way, the computational cost of traversing the whole search tree associated to a program can be decreased because the MEM model red...
متن کاملAn Analysis of Consecutively Bounded Depth-First Search with Applications in Automated Deduction
Consecutively bounded depth-first search involves repeatedly performing exhaustive depth-first search with increasing depth bounds of 1, 2, 3, and so on. The effect is similar to that of breadth-first search, but, instead of retaining the results at level n 1 for use in computing level n, earlier results are recomputed. Consecutively bounded depth-first search is useful whenever a complete sear...
متن کاملCombining Breadth-First and Depth-First Strategies in Searching for Treewidth
Breadth-first and depth-first search are basic search strategies upon which many other search algorithms are built. In this paper, we describe an approach to integrating these two strategies in a single algorithm that combines the complementary strengths of both. We show the benefits of this approach using the treewidth problem as an example.
متن کاملThe Multipath Architecture for Prolog Programs
This paper presents an architectural model that implements the Multipath execution model of Prolog programs. Multipath performs a partial breadth-rst traversal of SLD-trees, allowing a more eecient execution than the standard depth-rst traversal. Its advantages can be exploited either in a sequential or parallel implementation. In a sequential execution, Multipath reduces the number of operatio...
متن کاملExtensible Search with Hookable Disjunction
Horn Clause Programs have a natural depth-first procedural semantics. However, for many programs this procedural semantics is ineffective. In order to compute useful solutions, one needs the ability to modify the search method that explores the alternative execution branches. Tor, a well-defined hook into Prolog disjunction, provides this ability. It is light-weight thanks to its library approa...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994